package com.tbsoft.ehr.dao.attendance;

import java.util.Date;
import java.util.List;

import com.tbsoft.ehr.dao.BaseDao;
import com.tbsoft.ehr.model.Attendance;
import com.tbsoft.ehr.model.StaffInfo;

public interface AttendanceDao extends BaseDao<Attendance> {

	/**
	 * 获得用户已休的年假数据
	 * @param userId
	 * @return
	 */
	public List<Attendance> getYearLeaveByUserId(String userId,String startDate,String endDate);
	
	/**
	 * 获取用户调休假的信息
	 * @param staffId
	 * @return
	 */
	public List<Attendance> getDaysOffByStaffId(String staffId);
	
	/**
	 * 根据条件分页查询缺勤信息
	 * @param staffLst
	 * @param adTimeFrom
	 * @param adTimeTo
	 * @param startIndex
	 * @param count
	 * @return
	 */
	public List<Attendance> getAbsenceByCondton(List<StaffInfo> staffLst,String adTimeFrom,String adTimeTo,int startIndex,int count);
	/**
	 * 根据条件查询数量
	 * @param staffLst
	 * @param adTimeFrom
	 * @param adTimeTo
	 * @return
	 */
	public int getAbsenceCount(List<StaffInfo> staffLst,String adTimeFrom, String adTimeTo);
	
	/**
	 * 根据id查询一条缺勤信息
	 * @param id
	 * @return
	 */
	public Attendance getAttendanceById(String id);
	
	/**
	 * 修改缺勤信息
	 * @param ad
	 */
	public void updateAbsence(Attendance ad);
	
	/**
	 * 判断在某天是否已存在请假信息
	 * @param userId
	 * @param d
	 * @return
	 */
	public boolean hasAbsenceInDate(String userId,Date d);
}
